package com.engine.salary.entity.taxagent.po;

import com.engine.hrmelog.annotation.ElogTransform;
import com.engine.salary.enums.salarysob.TargetTypeEnum;
import com.engine.salary.enums.taxagent.TaxAgentRangeTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Collection;
import java.util.Date;

/**
 * 个税扣缴义务人的管理范围表
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_tax_agent_manage_range
@ElogTransform( name="个税扣缴义务人管理范围" )
public class TaxAgentManageRangePO {

    /**
     * 主键id
     */
    @ElogTransform( name ="主键")
    private Long id;

    /**
     * 分管理员的id
     */
    private Long taxAgentSubAdminId;

    /**
     * 个税扣缴义务人的主键id
     */
    @ElogTransform( name ="个税扣缴义务人id")
    private Long taxAgentId;

    /**
     * 范围类型
     * @see TaxAgentRangeTypeEnum
     */
    @ElogTransform( name ="范围类型")
    private Integer rangeType;

    /**
     * 对象类型
     * @see TargetTypeEnum
     */
    @ElogTransform( name ="对象类型")
    private Integer targetType;

    /**
     * 对象id
     */
    @ElogTransform( name ="对象id")
    private Long targetId;

    @ElogTransform( name ="SQL")
    private String target;

    /**
     * 人员状态
     */
    @ElogTransform( name ="人员状态")
    private String employeeStatus;

    /**
     * 是包含还是排除 0：排除、1：包含
     */
    @ElogTransform( name ="是包含还是排除 0：排除、1：包含")
    private Integer includeType;

    /**
     * 租户key
     */
    @ElogTransform( name ="租户key")
    private String tenantKey;

    /**
     * 创建人id
     */
    @ElogTransform( name ="创建人id")
    private Long creator;

    /**
     * 是否删除
     */
    private Integer deleteType;

    /**
     * 创建时间
     */
    @ElogTransform( name ="创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @ElogTransform( name ="更新时间")
    private Date updateTime;


    private Collection<Long> taxAgentIds;
    private Collection<Long> ids;
    private Collection<Long> taxAgentSubAdminIds;
}
